package com.yfp.operation.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

/**
 * 活动
 * @TableName mar_activity
 */
@TableName(value ="mar_activity")
@Data
public class MarActivity implements Serializable {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 活动名称
     */
    @Schema(description = "活动名称")
    private String activityName;

    /**
     * 活动开始时间
     */
    @Schema(description = "活动开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp startTime;

    /**
     * 活动结束时间
     */
    @Schema(description = "活动结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp endTime;

    /**
     * 规则1自动发放2主动领取
     */
    @Schema(description = "规则1自动发放2主动领取")
    private Integer rule;

    /**
     * 规则描述
     */
    @Schema(description = "规则描述")
    private String ruleDescribe;

    /**
     * 类型1邀请有礼活动
     */
    @Schema(description = "类型1邀请有礼活动")
    private Integer type;

    /**
     * 状态0失效1正常2已过期3删除4未开始
     */
    @Schema(description = "状态0失效1正常2已过期3删除4未开始")
    private Integer status;

    /**
     * 创建用户
     */
    @Schema(description = "创建用户")
    private Long createUserId;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Timestamp createTime;

    /**
     * 编辑用户
     */
    @Schema(description = "编辑用户")
    private Long updateUserId;

    /**
     * 编辑时间
     */
    @Schema(description = "编辑时间")
    private Timestamp updateTime;

    /**
     * 分享标题
     */
    @Schema(description = "分享标题")
    private String shareTitle;

    /**
     * 分享图片
     */
    @Schema(description = "分享图片")
    private String shareImg;

    /**
     * 分享页面背景
     */
    @Schema(description = "分享页面背景")
    private String shareBackgroundImg;

    /**
     * 活动背景图
     */
    @Schema(description = "活动背景图")
    private String backgroundImg;


    /**
     * 被邀请人奖励描述
     */
    @Schema(description = "被邀请人奖励描述")
    private String passiveAward;

    /**
     * 邀请人奖励描述
     */
    @Schema(description = "邀请人奖励描述")
    private String hostAward;

    /**
     * 按钮名称
     */
    @Schema(description = "按钮名称")
    private String buttonName;

    /**
     * 活动规则
     */
    @Schema(description = "活动规则")
    private String activityRule;

    /**
     * 营销主表id
     */
    @Schema(description = "营销主表id")
    private Long marketingId;

    /**
     * 能否关联轮播图 1能  0不能
     */
    @Schema(description = "能否关联轮播图 1能  0不能")
    private Integer setting;

    @Schema(description = "城市名称")
    private String cityName;


    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 被邀请人奖励优惠券名称
     */
    @Schema(description = "被邀请人奖励优惠券名称")
    @TableField(exist = false)
    private String passiveCouponName;

    /**
     * 邀请人奖励优惠券名称
     */
    @Schema(description = "邀请人奖励优惠券名称")
    @TableField(exist = false)
    private String hostCouponName;

    /**
     * 被邀请人奖励优惠券id
     */
    @Schema(description = "被邀请人奖励优惠券id")
    @TableField(exist = false)
    private Long passiveCouponId;

    /**
     * 邀请人奖励优惠券id
     */
    @Schema(description = "邀请人奖励优惠券id")
    @TableField(exist = false)
    private Long hostCouponId;

    @Schema(description="部门ID（数据权限使用）")
    private Long deptId;

    /**
     * 1普通全部点位 2普通指定点位表 3特殊全部点位 4特殊指定点位
     */
    @Schema(description="参与点位 1普通全部点位 2普通指定点位表 3特殊全部点位 4特殊指定点位")
    private Integer position;

    @TableField(exist = false)
    @Schema(description="点位id列表")
    private List<String> positionIdList;
}